package com.huilian.iotbox.data.vo;

import com.huilian.iotbox.data.dto.CommodityStoreUpDownDto;
import com.huilian.iotbox.data.dto.QueryParam;
import com.huilian.iotbox.data.po.Label;
import com.huilian.iotbox.data.po.TermOfValidityCoin;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@Data
public class MemberVo extends QueryParam implements Serializable {
    private Long id;
    /**
     * 微信名称
     */
    private String nickName;
    private String remarkName;
    /**
     * 性别
     */
    private Integer sex;
    /**
     * 国籍
     */
    private String country;
    /**
     * 头像
     */
    private String headImgUrl;
    /**
     * unionId
     */
    private String unionId;
    /**
     * 微信openId
     */
    private String openId;
    /**
     * 支付宝userId
     */
    private String zfbUserId;

    /**
     * 累计支付
     */
    private BigDecimal totalPay;
    /**
     * 最近一次消费
     */
    private Date latelyPay;
    /**
     * 消费等级：1：潜水  2：回头  3：活跃
     */
    private Integer levelPay;

    /**
     * 生日
     */
    private Date birthday;
    /**
     * 手机号
     */
    private String mobile;
    /**
     * 6位取币密码，加密
     */
    private String fetchCoinPwd;
    /**
     * 状态0=异常，1=正常
     */
    private Integer status;
    /**
     * 充值余额
     */
    private Integer rechargeBalance;
    /**
     * 赠送余额
     */
    private Integer donateBalance;
    /**
     * 注册时间（UserStoreBalance-createTime）
     */
    private Date registerCreateTime;
    /**
     * 用户第一次在哪台设备注册
     */
    private String registerDeviceNo;
    /**
     * 最近一次玩的时间
     */
    private Date lastTime;
    /**
     * 最近一次玩的设备
     */
    private String lastDeviceNo;
    /**
     * 门店名称id
     */
    private String storeName;
    /**
     * 用户-店铺中间表id
     */
    private Long memberStoreBalanceId;
    /**
     * 支付成功的金额
     */
    private BigDecimal successMoney;

    /**
     * 余币
     */
    private Integer surplusCoin;

    private String channelType;

    private Integer userId;

    private String username;

    private String name;


    private String agencyName;

    private String agencyNo;
    /**
     * 店铺id
     */
    private Integer merchantStoreId;
    /**
     * 娃娃币
     */
    private Integer integral;

    private Integer lottery;

    private String token;

    /**
     * 是否已设置取币密码
     */
    private Boolean haveFetchCoinPwd;

    /**
     * 会员游戏币总计数量
     */
    private Integer gameCoinTotal;

    /**
     * 会员娃娃币总计数量
     */
    private Integer dollCoinTotal;
    /**
     * 新用户
     */
    private Boolean firstUser;
    /**
     * 拥有卡券数
     */
    private Integer couponTotal;
    /**
     * 人民币余额
     */
    private BigDecimal balance;
    /**
     * 游戏币余额
     */
    private BigDecimal coinTotal;
    /**
     * 用户所属端 0微信 1支付宝
     */
    private Integer userTerminal;
    /**
     * 累计投币
     */
    private Integer cumulativeCoin;

    /**
     * 标签列表
     */
    private List<Label> labelList = new ArrayList<>();

    /**
     * 标签name集合 标签1,标签2,标签3 格式 业务层转换List<label>集合
     */
    private String labelNames;
    /**
     * 标签id集合 1,2,3格式 业务层转换List<label>集合
     */
    private String labelIds;
    private List<CommodityProjectVo> commodityProjectVoList;

    /**
     * 游戏币总余额  充值+赠送
     */
    private Integer currencyBalance;

    /**
     * 可用套票
     */
    private Integer packageTotal;

    /**
     * 套票使用
     */
    private Integer packageUse;

    /**
     * 兑换记录
     */
    private Integer expensesRecord;

    private String outTradeNo;

    private String bankType;

    private String payChannelOrderNo;

    private String body;

    private BigDecimal totalAmount;

    private String commodityName;
    private String commodityProjectName;

    private Date specifyDueTime;

    private Integer consume;

    private Integer numberOfPlay;

    private Integer integralPrice;

    private Integer consumePrice;

    private Integer lotteryPrice;

    private String deviceTypeName;

    private String deviceNo;

    private Integer rechargeAfterBalance;

    private Integer rechargeBeforeBalance;

    /**
     * 启动记录
     */
    private Integer bootRecord;

    private String commodityStoreUpDownIdList;

    private String consumeRecordTypeName;

    private List<CommodityStoreUpDownDto> chooseCommodityList;
    /**
     * 人民币充值余额
     */
    private Integer ticketPackageType;
    private BigDecimal moneyRechargeBalance;
    /**
     * 人民币赠送余额
     */
    private BigDecimal moneyDonateBalance;

    private String payCompanyCode;
    /**
     * 头像
     */
    private String ImgUrl;

    private String tempId;

    private Integer versionId;

    private Date printTime;

    private Date validity;
    /**
     * ic 会员卡号
     */
    private String cardNo;

    private Long orderId;

    private List<TermOfValidityCoin> temporaryCurrencyList = new ArrayList<>();

    private Long memberId;

    private Integer noUseTickets;
}
